package com.cskaoyan._03array._01demo;

import org.junit.Test;

import java.util.Arrays;

/**
 * @author Macro_Ray
 * @since 2024/3/2 10:31
 */
/*
 * 数组基本操作
 *
 * [I@6e3c1e69
 * I 表示int类型
 * @ 表示分隔 后面是十六进制数
 *
 * */
public class _04Operation {

    // 基本访问
    // @Test 有点类似于 main方法
    // @Test 是放在一个方法上面的
    // 这个方法 一定是 public void 方法名();  一定不能有参数
    @Test
    public void test1() {
        System.out.println("test1");


        int[] nums = {1, 2, 3};
        // 直接打印这个得到的是机械地址 [I@6e3c1e69
        // 对于程序员来说没有什么意义，我们更关心里面的元素是什么
        System.out.println(nums);

        // Arrays.toString 方法 ：返回数组中的数据
        // 就是将数组中的数据封装起来，变成一个字符串返回给你
        String string = Arrays.toString(nums);
        System.out.println(string);

        // 数据类型 变量名 = 数组名[下标]

    }

    // 修改
    @Test
    public void test2() {
        String[] teaList = {"霸王茶姬", "茶百道", "瑞幸", "星巴克"};

        // 数组中 下标是从0开始的
        System.out.println(teaList[0]);
        System.out.println("teaList[0] = " + teaList[0]);

        teaList[1] = "KFC";
        System.out.println(Arrays.toString(teaList))
        ;

    }

    // 长度
    @Test
    public void test3() {
        String[] teaList = {"霸王茶姬", "茶百道", "瑞幸", "星巴克"};

        int length = teaList.length;
        System.out.println(length);
    }

    // 遍历数组
    // 遍历：访问切近访问所有数据一次
    @Test
    public void test4() {
        String[] teaList = {"霸王茶姬", "茶百道", "瑞幸", "星巴克"};

        int length = teaList.length;
        for (int i = 0; i < length; i++) {
            System.out.println(teaList[i]);
        }

        // idea有提供的自动生成数组的遍历
        // 数组名.fori
        for (int i = 0; i < teaList.length; i++) {
            System.out.println(teaList[i]);
        }

    }
}
